﻿namespace MyCompanyName.AbpZeroTemplate.Authorization
{
    /// <summary>
    /// Defines string constants for application's permission names.
    /// <see cref="AppAuthorizationProvider"/> for permission definitions.
    /// </summary>
    public static class AppPermissions
    {
        //COMMON PERMISSIONS (FOR BOTH OF TENANTS AND HOST)

        public const string Pages = "Pages";

        public const string Pages_Administration = "Pages.Administration";

        public const string Pages_Administration_Roles = "Pages.Administration.Roles";
        public const string Pages_Administration_Roles_Create = "Pages.Administration.Roles.Create";
        public const string Pages_Administration_Roles_Edit = "Pages.Administration.Roles.Edit";
        public const string Pages_Administration_Roles_Delete = "Pages.Administration.Roles.Delete";

        public const string Pages_Administration_Users = "Pages.Administration.Users";
        public const string Pages_Administration_Users_Create = "Pages.Administration.Users.Create";
        public const string Pages_Administration_Users_Edit = "Pages.Administration.Users.Edit";
        public const string Pages_Administration_Users_Delete = "Pages.Administration.Users.Delete";
        public const string Pages_Administration_Users_ChangePermissions = "Pages.Administration.Users.ChangePermissions";
        public const string Pages_Administration_Users_Impersonation = "Pages.Administration.Users.Impersonation";

        public const string Pages_Administration_Languages = "Pages.Administration.Languages";
        public const string Pages_Administration_Languages_Create = "Pages.Administration.Languages.Create";
        public const string Pages_Administration_Languages_Edit = "Pages.Administration.Languages.Edit";
        public const string Pages_Administration_Languages_Delete = "Pages.Administration.Languages.Delete";
        public const string Pages_Administration_Languages_ChangeTexts = "Pages.Administration.Languages.ChangeTexts";

        public const string Pages_Administration_AuditLogs = "Pages.Administration.AuditLogs";

        public const string Pages_Administration_OrganizationUnits = "Pages.Administration.OrganizationUnits";
        public const string Pages_Administration_OrganizationUnits_ManageOrganizationTree = "Pages.Administration.OrganizationUnits.ManageOrganizationTree";
        public const string Pages_Administration_OrganizationUnits_ManageMembers = "Pages.Administration.OrganizationUnits.ManageMembers";

        public const string Pages_Administration_HangfireDashboard = "Pages.Administration.HangfireDashboard";

        //TENANT-SPECIFIC PERMISSIONS

        public const string Pages_Tenant_Dashboard = "Pages.Tenant.Dashboard";

        public const string Pages_Administration_Tenant_Settings = "Pages.Administration.Tenant.Settings";

        //HOST-SPECIFIC PERMISSIONS

        public const string Pages_Editions = "Pages.Editions";
        public const string Pages_Editions_Create = "Pages.Editions.Create";
        public const string Pages_Editions_Edit = "Pages.Editions.Edit";
        public const string Pages_Editions_Delete = "Pages.Editions.Delete";

        public const string Pages_Tenants = "Pages.Tenants";
        public const string Pages_Tenants_Create = "Pages.Tenants.Create";
        public const string Pages_Tenants_Edit = "Pages.Tenants.Edit";
        public const string Pages_Tenants_ChangeFeatures = "Pages.Tenants.ChangeFeatures";
        public const string Pages_Tenants_Delete = "Pages.Tenants.Delete";
        public const string Pages_Tenants_Impersonation = "Pages.Tenants.Impersonation";

        public const string Pages_Administration_Host_Maintenance = "Pages.Administration.Host.Maintenance";
        public const string Pages_Administration_Host_Settings = "Pages.Administration.Host.Settings";

        //----------------以下自定义----------------

        //代理商
        public const string Pages_Agent = "Pages.Agent";
        //代理商列表
        public const string Pages_Agent_List = "Pages.Agent.List";
        //创建代理商
        public const string Pages_Agent_Create = "Pages.Agent.Create";
        //维护代理商
        public const string Pages_Agent_Update = "Pages.Agent.Update";

        //代理商转账  
        public const string Pages_Agent_Transfer = "Pages.Agent.Tansfer";
        //代理商转账记录 
        public const string Pages_Agent_TransferList = "Pages.Agent.TansferList";
        //代理商充值  
        public const string Pages_Agent_Recharge = "Pages.Agent.Recharge";
        //代理商充值记录 
        public const string Pages_Agent_RechargeList = "Pages.Agent.RechargeList";


        //产品
        public const string Pages_Product = "Pages.Product";
        public const string Pages_Product_List = "Pages.Product.List";

        //卡片
        public const string Pages_Card = "Pages.Card";
        public const string Pages_Card_List = "Pages.Card.List";
        public const string Pages_Card_TransferCard = "Pages.Card.TransferCard";
        public const string Pages_Card_TransferCardLog = "Pages.Card.TransferCardLog";
        public const string Pages_Card_RechardeCard = "Pages.Card.RechardeCard";
        public const string Pages_Card_RechardeLog = "Pages.Card.RechardeLog";


        //系统
        public const string Pages_System = "Pages.System";
        public const string Pages_System_Setting = "Pages.System.Setting";


        //配置
        public const string Pages_Config = "Pages.Config";
        public const string Pages_Config_Setting = "Pages.Config.Setting";

        //运营
        public const string Pages_Operate = "Pages.Operate";
        public const string Pages_Operate_DailyReport = "Pages.Operate.DailyReport";
        public const string Pages_Operate_MonthReports = "Pages.Operate.MonthReports";
    }
}